RessourcenDB Class Reference

List of all members.

Public Member Functions

 __construct ($fileManager=null)
 setFileManager ($filemanager)
 getSubFolder ($p_folder)
 getFiles ($folderID, $sortString="create_time", $desc=false)
 getNewestFiles ($limit=20)
 getMostRatedFiles ($limit=20)
 getFileByID ($fileID)
 getFolderByID ($folderID)
 getUserCourses ($userID)
 countSubElements ($folderID, $subFolders=true)
 getCourseShortNameByID ($courseID)
 logResourceDownload ($resourceID)

Static Public Member Functions

static getVisibilityConstraintSQL ()
static saveFolderState ($folder)

Private Member Functions

 getFileObject ($db_object)
 getFolderObject ($folder_db)

Private Attributes

 $fileManager = null

Detailed Description

Definition at line 28 of file class.ressourcendb.inc.php.


Constructor & Destructor Documentation

RessourcenDB::__construct ( fileManager = null  ) 

Definition at line 31 of file class.ressourcendb.inc.php.

References $fileManager.

00031                                                            {
00032                 $this->fileManager = $fileManager;
00033         }


Member Function Documentation

RessourcenDB::countSubElements ( folderID,
subFolders = true 
)

Definition at line 217 of file class.ressourcendb.inc.php.

References $db, and getVisibilityConstraintSQL().

00217                                                                  {
00218         global $db;
00219         $count = 0;
00220         $folderID = Data::toMysql( $folderID );
00221         $sql_add = self::getVisibilityConstraintSQL();
00222         if ($subFolders) {
00223             $folders = $db->get_col("SELECT fileID FROM filelist WHERE type='folder' AND parent_object='".$folderID."' ".$sql_add);
00224             if ($folders) foreach($folders as $folder) {
00225                 $count+= $this->countSubElements($folder);
00226             }
00227         }
00228         $count+= $db->get_var("SELECT COUNT(*) FROM filelist WHERE type!='folder' AND parent_object='$folderID' $sql_add");
00229         return $count;
00230     }

RessourcenDB::getCourseShortNameByID ( courseID  ) 

Get short course name.

Parameters:
Integer $courseID Course id
Returns:
String Short course name

Definition at line 239 of file class.ressourcendb.inc.php.

References $db.

00239                                                {
00240         global $db;
00241         
00242         $courseID = Data::toMysql($courseID);
00243         
00244         return $db->get_var("SELECT `ShortName` FROM `courses` WHERE `ID` = $courseID");
00245     }

RessourcenDB::getFileByID ( fileID  ) 

Definition at line 163 of file class.ressourcendb.inc.php.

References $db, and getFileObject().

00163                                                {
00164                 global $db;
00165                 $fileID = Data::toMysql( $fileID );
00166                 $file_db = $db->get_row("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist WHERE fileID = '$fileID' AND type='file'");
00167                 if ( $file_db ) {
00168                         return $this->getFileObject( $file_db );
00169                 }
00170                 return false;
00171         }

RessourcenDB::getFileObject ( db_object  )  [private]

Definition at line 84 of file class.ressourcendb.inc.php.

Referenced by getFileByID(), getFiles(), getMostRatedFiles(), and getNewestFiles().

00084                                                      {
00085                 $file = new File();
00086                 $file->setFileID ( $db_object->fileID );
00087                 $file->setVisibleType ( $db_object->visible_type );
00088                 $file->setUserID ( $db_object->userID );
00089                 $file->setName ( $db_object->name );
00090                 $file->setOrigFileName ( $db_object->orig_filename );
00091                 $file->setType ( $db_object->type );
00092                 $file->setLink ( $db_object->link );
00093                 $file->setSize ( $db_object->size );
00094                 $file->setCounter ( $db_object->counter );
00095                 $file->setCreateTime ( $db_object->create_time );
00096                 $file->setDescription ( $db_object->description );
00097                 $file->setExtension ( $db_object->extension );
00098                 $file->setCourseID ( $db_object->courseID );
00099                 $file->setFileManager( $this->fileManager );
00100                 return $file;
00101         }

RessourcenDB::getFiles ( folderID,
sortString = "create_time",
desc = false 
)

Definition at line 117 of file class.ressourcendb.inc.php.

References $_SESSION, $db, getFileObject(), and getVisibilityConstraintSQL().

00117                                                                                            {
00118                 global $db;
00119                 $course = Data::toMysql( $_SESSION["course"] );
00120                 $direction = ( $desc ) ? "DESC" : "ASC";
00121                 $sortString = Data::toMysql( $sortString );
00122                 $folderID = Data::toMysql( $folderID );
00123 
00124                 $sql_add = self::getVisibilityConstraintSQL();
00125                 if ( $sortString == "userID" ) {
00126                         $files_db = (array) $db->get_results("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist LEFT OUTER JOIN user ON (filelist.userID=user.ID) WHERE parent_object='".$folderID."' AND (courseID=$course OR courseID=0)  AND type!='folder' $sql_add ". " ORDER BY user.Nachname " . $direction);
00127                 } else {
00128                         $files_db = (array) $db->get_results("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist WHERE parent_object='".$folderID."' AND (courseID='$course' OR courseID=0) AND type!='folder' ".$sql_add." ORDER BY ".$sortString. " ". $direction);
00129                 }
00130                 $files = array();
00131                 foreach ( $files_db as $file_db ) {
00132                         $files[] = self::getFileObject( $file_db );
00133                 }
00134                 return $files;
00135         }

RessourcenDB::getFolderByID ( folderID  ) 

Definition at line 174 of file class.ressourcendb.inc.php.

References $db, and getFolderObject().

00174                                                    {
00175                 global $db;
00176                 $folderID = Data::toMysql( $folderID );
00177                 $folder_db = $db->get_row("SELECT name, fileID, courseID, link, userID, student_write, create_time, description, visible_type FROM filelist WHERE type='folder' AND fileID='".$folderID."'");
00178                 if ( $folder_db ) {
00179                         return $this->getFolderObject( $folder_db );
00180                 }
00181                 return false;
00182         }

RessourcenDB::getFolderObject ( folder_db  )  [private]

Definition at line 103 of file class.ressourcendb.inc.php.

Referenced by getFolderByID(), and getSubFolder().

00103                                                        {
00104                 $folder = new Folder( $folder_db->fileID );
00105                 $folder->setCourseID( $folder_db->courseID );
00106                 $folder->setUserID( $folder_db->userID );
00107                 $folder->setLink( $folder_db->link );
00108                 $folder->setVisibleType( $folder_db->visible_type );
00109                 $folder->setName( $folder_db->name );
00110                 $folder->setStudentWrite( $folder_db->student_write );
00111                 $folder->setCreateTime( $folder_db->create_time );
00112                 $folder->setDescription( $folder_db->description );
00113                 $folder->setFileManager( $this->fileManager );
00114                 return $folder;
00115         }

RessourcenDB::getMostRatedFiles ( limit = 20  ) 

Definition at line 150 of file class.ressourcendb.inc.php.

References $_SESSION, $db, and getFileObject().

00150                                                          {
00151                 global $db;
00152                 $time = time();
00153                 $course = Data::toMysql( $_SESSION["course"] );
00154                 $limit = Data::toMysql( $limit );
00155                 $files_db = (array) $db->get_results("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist WHERE courseID='$course' AND visible_type=1 AND type!='folder' AND start_time<'$time' AND end_time>'$time' ORDER BY counter DESC LIMIT $limit");
00156                 $files = array();
00157                 foreach ( $files_db as $file_db ) {
00158                         $files[] = self::getFileObject( $file_db );
00159                 }
00160                 return $files;
00161         }

RessourcenDB::getNewestFiles ( limit = 20  ) 

Definition at line 137 of file class.ressourcendb.inc.php.

References $_SESSION, $db, and getFileObject().

00137                                                       {
00138                 global $db;
00139                 $time = time();
00140                 $course = Data::toMysql( $_SESSION["course"] );
00141                 $limit = Data::toMysql( $limit );
00142                 $files_db = (array) $db->get_results("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist WHERE courseID='$course' AND visible_type=1 AND type!='folder' AND start_time<'$time' AND end_time>'$time' ORDER BY create_time DESC LIMIT $limit");
00143                 $files = array();
00144                 foreach ( $files_db as $file_db ) {
00145                         $files[] = self::getFileObject( $file_db );
00146                 }
00147                 return $files;
00148         }

RessourcenDB::getSubFolder ( p_folder  ) 

Definition at line 55 of file class.ressourcendb.inc.php.

References $_SESSION, $db, getFolderObject(), and getVisibilityConstraintSQL().

00055                                                   {
00056                 global $db;
00057                 $sql_add = self::getVisibilityConstraintSQL();
00058                 $folderID = Data::toMysql( $p_folder->getID() );
00059                 $folders_db = (array) $db->get_results("SELECT courseID, create_time, description, student_write, userID, fileID, link, visible_type, name FROM filelist WHERE parent_object='".$folderID."' AND courseID='".Data::toMysql( $_SESSION['course'] )."' AND type='folder' $sql_add ORDER BY link");
00060                 $folders = array();
00061                 foreach ( $folders_db as $folder_db ) {
00062                         $folder = $this->getFolderObject( $folder_db );
00063                         $folder->setParentFolder( $p_folder );
00064                         $folder->setFolderState( $db->get_var("SELECT userID FROM filetreelayout WHERE userID='".Data::toMysql( $_SESSION['userid'] )."' AND folderID='".Data::toMysql( $folder_db->fileID )."'") );
00065                         $folders[] = $folder;
00066                 }
00067                 return $folders;
00068         }

RessourcenDB::getUserCourses ( userID  ) 

Definition at line 184 of file class.ressourcendb.inc.php.

References $_SESSION, and $db.

Referenced by File::getCopyFileHTML().

00184                                                   {
00185                 global $settings, $db;
00186                 $userID = Data::toMysql( $userID );
00187                 $courseID = Data::toMysql( $_SESSION['course'] );
00188         if ($_SESSION['usergroup'] == ADMIN || $_SESSION['usergroup'] == SEKRETARIAT) $sql = "SELECT c.ID, c.ShortName AS SN, u.ShortName
00189                                         FROM courses AS c
00190                                         RIGHT JOIN user_course AS uc
00191                                                 ON c.ID = uc.courseID
00192                                         LEFT JOIN user AS u
00193                                                 ON uc.userID = u.ID
00194                                         WHERE ((u.Usergroup = 3 AND uc.differentUsergroup = 0)
00195                                     OR uc.differentUsergroup = 3)
00196                                                 AND c.closed = 0 " .
00197                                            "AND c.ID <> ". $courseID ."
00198                                         ORDER BY c.ShortName, c.ID";
00199         else $sql = "SELECT c.ID, c.ShortName AS SN, u.ShortName
00200                           FROM (user_course AS uc1, user AS u)
00201                           RIGHT JOIN user_course AS uc2
00202                            ON uc1.courseID = uc2.courseID
00203                           RIGHT JOIN courses AS c
00204                            ON uc1.courseID = c.ID
00205                           WHERE ((u.Usergroup = 3 AND uc2.differentUsergroup = 0)
00206                             OR uc2.differentUsergroup = 3)
00207                             AND uc1.userID  = ".$userID."
00208                             AND u.ID        = uc2.userID
00209                             AND c.closed        = 0 " .
00210                             "AND c.ID <> ". $courseID ."
00211                           ORDER BY c.ShortName, c.ID";
00212         $courses = (array) $db->get_results($sql);
00213 
00214         return $courses;
00215         }

static RessourcenDB::getVisibilityConstraintSQL (  )  [static]

Definition at line 39 of file class.ressourcendb.inc.php.

References $_SESSION, and $db.

Referenced by countSubElements(), getFiles(), and getSubFolder().

00039                                                         {
00040         global $db, $settings;
00041         $time = Data::toMysql( time() );
00042         $userid = Data::toMysql( $_SESSION["userid"] );
00043         $sql_add = "";
00044         if ($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST || $_SESSION["usergroup"] == SEKRETARIAT) { // Hier darf kein visible_type eingeschraenkt werden, da sonst die Einzeluser-Berechtigung nicht mehr funktioniert !!!
00045             $sql_add = "AND ((filelist.userID='".$userid."' OR (start_time<'$time' AND end_time>'$time' AND visible_type=1))";
00046             if (isset($_SESSION["assistent"])) // TUTOR
00047             $sql_add = "AND ((visible_type<='2' OR filelist.userID='".$userid."')";
00048             $visibleFiles = $db->get_col("SELECT fileID FROM filevisible WHERE userID='".$userid."'");
00049             if ($db->num_rows) $sql_add.= " OR fileID IN (".implode(",", $visibleFiles) .")";
00050             $sql_add.= ")";
00051         }
00052         return $sql_add;
00053     }

RessourcenDB::logResourceDownload ( resourceID  ) 

Log file download.

Write log entry to filelog table and increment download count in filelist table.

Parameters:
Integer $resourceID Resource id

Definition at line 254 of file class.ressourcendb.inc.php.

References $_SESSION, and $db.

00254                                                      {
00255         global $db;
00256         
00257         $time = Data::toMysql(time());
00258         $resourceID = Data::toMysql($resourceID);
00259         $db->query("INSERT INTO filelog (userID, fileID, date) VALUES ('".$_SESSION['userid']."','$resourceID','$time')");
00260         $db->query("UPDATE filelist SET counter=counter+1 WHERE fileID='$resourceID'");
00261     }

static RessourcenDB::saveFolderState ( folder  )  [static]

Definition at line 70 of file class.ressourcendb.inc.php.

References $_SESSION, and $db.

Referenced by Folder::printSubFolder().

00070                                                           {
00071                 global $db;
00072             $folderState = $folder->getFolderState();
00073             $userid = Data::toMysql( $_SESSION['userid'] );
00074             $folderID = Data::toMysql( $folder->getID() );
00075             if ($folderState) {
00076             $db->query("DELETE FROM filetreelayout WHERE userID='".$userid."' AND folderID='".$folderID."'");
00077             $folder->setFolderState(false);
00078         } else {
00079             $db->query("INSERT INTO filetreelayout (userID, folderID) VALUES ('".$userid."','".$folderID."')");
00080             $folder->setFolderState(true);
00081         }
00082         }

RessourcenDB::setFileManager ( filemanager  ) 

Definition at line 35 of file class.ressourcendb.inc.php.

References $filemanager.

00035                                                        {
00036                 $this->fileManager = $filemanager;
00037         }


Member Data Documentation

RessourcenDB::$fileManager = null [private]

Definition at line 29 of file class.ressourcendb.inc.php.

Referenced by __construct().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations

Generated on Fri Oct 30 17:21:39 2009 for MSP Modul Ressourcen by  doxygen 1.6.1